package com.waiting.list;

import java.util.ArrayList;

/**
 * @Description
 * @Author bjweitingting
 * @Date 2019/2/15
 **/
public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<Integer> test = new ArrayList<>();
        test.add(100);
        test.add(200);
        for (Integer item : test) {
            if (item == 100) {
                test.remove(item);
            }
        }
        System.out.println("没有异常");
    }
//        Iterator<Integer> ite=test.iterator();
//        while (ite.hasNext()){
//
//        }
//        Field field= null;
//        try {
//            field = ite.getClass().getDeclaredField("expectedModCount");
//            field.setAccessible(true);
//            System.out.println(field.getInt(ite));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        test.remove(Integer.valueOf(100));
//        try {
//            field = ite.getClass().getDeclaredField("expectedModCount");
//            field.setAccessible(true);
//            System.out.println(field.getInt(ite));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        Field field2= null;
//        try {
//            field2 = test.getClass().getDeclaredField("modCount");
//            field2.setAccessible(true);
//            System.out.println(field2.getInt(test));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//            Integer num=ite.next();
//            if (num==100){
//                System.out.println("this");
//               test.remove(num);
//            }

//        ArrayList<Integer> list = new ArrayList<>();
//        list.add(2);
//        list.add(3);  //如果再添加一个元素，就不会报错了
////        list.add(4);
//        Iterator<Integer> iterator = list.iterator();
//        while(iterator.hasNext()){
//            Integer integer = iterator.next();
//            if(integer==2)
//                list.remove(integer);
//        }
//        ListIterator<Integer> ite2=test.listIterator();
//        while (ite2.hasNext()){
//            if (ite2.next()==100){
//                ite2.remove();
//                System.out.println("remove");
//            }
//        }
//        while (ite2.hasNext()){
//            System.out.println(((ListIterator<Integer>) ite2).nextIndex());
//        }
//    }
}
